package org.chronologger.poppaea.client.domain;

import com.google.gwt.user.client.rpc.AsyncCallback;

interface ChronologyServiceAsync {

	void addLocation(Long chronologyKey, AsyncCallback<Location> callback);

	void addPerson(Long sceneKey, Long characterKey,
			AsyncCallback<Void> callback);

	void addScene(Long locationKey, AsyncCallback<Scene> callback);

	void createChronology(String name, AsyncCallback<ChronologyData> callback);

	void createPerson(Long chronologyKey, AsyncCallback<Person> callback);	
	
	void deleteChronology(Long chronologyKey, AsyncCallback<Void> callback);

	void deletePerson(Long personKey, AsyncCallback<Void> callback);

	void getChronology(Long chronologyKey, AsyncCallback<ChronologyData> callback);

	void removeLocation(Long locationKey, AsyncCallback<Void> callback);

	void removePerson(Long sceneKey, Long characterKey,
			AsyncCallback<Void> callback);

	void removeScene(Long sceneKey, AsyncCallback<Void> callback);

	void updateLocation(Location location, AsyncCallback<Void> callback);

	void updatePerson(Person person, AsyncCallback<Void> callback);

	void updateScene(Scene scene, AsyncCallback<Void> callback);

}
